home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / misc / interfaces3_5.lha / Interfaces / Gadgets.mod < prev    next >
Text File  |  1994-03-05  |  5KB  |  153 lines

  1. (*
  2. (*  Amiga Oberon Interface Module:
  3. **  $VER: Gadgets.mod 40.15 (28.12.93) Oberon 3.0
  4. **
  5. **      (C) Copyright 1991-1992 Commodore-Amiga, Inc.
  6. **          All Rights Reserved
  7. **
  8. **      (C) Copyright Oberon Interface 1993 by hartmut Goebel
  9. *)          All Rights Reserved
  10. *)
  11.  
  12. MODULE Gadgets;
  13.  
  14. (* !!! ATTENTION !!!
  15.  * You have to call OpenColorWheel() and check it' result before
  16.  * using any of the colorwheel's procedures. The colorwheel is not
  17.  * opened automatically to save memory.
  18.  *)
  19.  
  20. IMPORT
  21.   e  * := Exec,
  22.   u  * := Utility;
  23.  
  24. (*****************************************************************************)
  25. CONST
  26.   colorWheelName * = "colorwheel.gadget";
  27.  
  28. TYPE
  29.  
  30.   ColorWheelHSBPtr *= UNTRACED POINTER TO ColorWheelHSB;
  31.   ColorWheelRGBPtr *= UNTRACED POINTER TO ColorWheelRGB;
  32.  
  33. (* For use with the WHEEL_HSB tag *)
  34.   ColorWheelHSB * = STRUCT
  35.     hue         * : LONGINT;
  36.     saturation  * : LONGINT;
  37.     brightness  * : LONGINT;
  38.   END;
  39.  
  40. (* For use with the WHEEL_RGB tag *)
  41.   ColorWheelRGB * = STRUCT
  42.     red   * : LONGINT;
  43.     green * : LONGINT;
  44.     blue  * : LONGINT;
  45.   END;
  46.  
  47.  
  48. (*****************************************************************************)
  49. CONST
  50.  
  51.   wheelDummy          * = u.user+04000000H;
  52.   wheelHue            * = wheelDummy+1;   (* set/get Hue               *)
  53.   wheelSaturation     * = wheelDummy+2;   (* set/get Saturation        *)
  54.   wheelBrightness     * = wheelDummy+3;   (* set/get Brightness        *)
  55.   wheelHSB            * = wheelDummy+4;   (* set/get ColorWheelHSB     *)
  56.   wheelRed            * = wheelDummy+5;   (* set/get Red               *)
  57.   wheelGreen          * = wheelDummy+6;   (* set/get Green             *)
  58.   wheelBlue           * = wheelDummy+7;   (* set/get Blue              *)
  59.   wheelRGB            * = wheelDummy+8;   (* set/get ColorWheelRGB     *)
  60.   wheelScreen         * = wheelDummy+9;   (* init screen/enviroment    *)
  61.   wheelAbbrv          * = wheelDummy+10;  (* "GCBMRY" if English       *)
  62.   wheelDonation       * = wheelDummy+11;  (* colors donated by app     *)
  63.   wheelBevelBox       * = wheelDummy+12;  (* inside a bevel box        *)
  64.   wheelGradientSlider * = wheelDummy+13;  (* attached gradient slider  *)
  65.   wheelMaxPens        * = wheelDummy+14;  (* max # of pens to allocate *)
  66.  
  67.  
  68. (*****************************************************************************)
  69.  
  70.  
  71.   gradDummy      * = u.user+005000000H;
  72.   gradMaxVal     * = gradDummy+1;     (* max value of slider         *)
  73.   gradCurVal     * = gradDummy+2;     (* current value of slider     *)
  74.   gradSkipVal    * = gradDummy+3;     (* "body click" move amount    *)
  75.   gradKnobPixels * = gradDummy+4;     (* size of knob in pixels      *)
  76.   gradPenArray   * = gradDummy+5;     (* pen colors                  *)
  77.  
  78.  
  79. (*****************************************************************************)
  80.  
  81.  
  82.   tdeckDummy        * = u.user + 05000000H;
  83.   tdeckMode         * = tdeckDummy + 1;
  84.   tdeckPaused       * = tdeckDummy + 2;
  85.  
  86.   tdeckTape         * = tdeckDummy + 3;
  87.         (* (BOOL) Indicate whether tapedeck or animation controls.  Defaults
  88.          * to FALSE. *)
  89.  
  90.   tdeckFrames       * = tdeckDummy + 11;
  91.         (* (LONG) Number of frames in animation.  Only valid when using
  92.          * animation controls. *)
  93.  
  94.   tdeckCurrentFrame  * = tdeckDummy + 12;
  95.         (* (LONG) Current frame.  Only valid when using animation controls. *)
  96.  
  97. (*****************************************************************************)
  98.  
  99. (* Possible values for TDECK_Mode *)
  100.   butRewind    * = 0;
  101.   butPlay      * = 1;
  102.   butForward   * = 2;
  103.   butStop      * = 3;
  104.   butPause     * = 4;
  105.   butBegin     * = 5;
  106.   butFrame     * = 6;
  107.   butEnd       * = 7;
  108.  
  109. (*****************************************************************************)
  110.  
  111. VAR
  112.   cwBase * : e.LibraryPtr;
  113.   cwOpenCount: LONGINT; (* OpenLib() counter *)
  114.  
  115. (*--- functions in V39 or higher (Release 3) ---*)
  116.  
  117. (* Public entries *)
  118.  
  119. PROCEDURE ConvertHSBToRGB   *{cwBase,-01EH}(hsb{8}    : ColorWheelHSB;
  120.                                             VAR rgb{9}: ColorWheelRGB);
  121. PROCEDURE ConvertRGBToHSB   *{cwBase,-024H}(rgb{8}    : ColorWheelRGB;
  122.                                             VAR hsb{9}: ColorWheelHSB);
  123.  
  124. PROCEDURE OpenColorWheel * (): BOOLEAN;
  125. BEGIN
  126.   IF cwOpenCount = 0 THEN (* not opened *)
  127.     cwBase := e.OpenLibrary(colorWheelName,39);
  128.   END;
  129.   IF cwBase # NIL THEN
  130.     INC(cwOpenCount);
  131.     RETURN TRUE;
  132.   END;
  133.   RETURN FALSE;
  134. END OpenColorWheel;
  135.  
  136. PROCEDURE CloseColorWheel * ();
  137. BEGIN
  138.   IF cwOpenCount > 0 THEN
  139.     DEC(cwOpenCount);
  140.     IF cwOpenCount = 0 THEN
  141.       e.CloseLibrary(cwBase); cwBase := NIL;
  142.     END;
  143.   END;
  144. END CloseColorWheel;
  145.  
  146. BEGIN
  147.   (* cwOpenCount := 0; not needed for AmigaOberon *)
  148.  
  149. CLOSE
  150.   IF cwBase # NIL THEN e.CloseLibrary(cwBase); END;
  151.  
  152. END Gadgets.
  153.